Repository navigation
L1 taxonomy: classify cancellations and cascade-only TCPStore logs - #439
Merged
Merged
Conversation
Contributor
[Low impact] The PR appears safe to merge; no new actionable defect was established. SummaryUpdates the failure-category descriptions without changing decision values or executable code.
Reviews (15) · Last reviewed commit: "L1 taxonomy: classify cancellations and ..." · Reviewed by Greptile |
continue-revolution
force-pushed
the
chengsongz/taxonomy-category-fixes
branch
from
October 10, 2026 01:03
37a32a7 to
eb7be87
Compare
Contributor
Author
|
Generated by human -- This PR is mainly to fix:
|
namitdhameja
approved these changes
Oct 14, 2026
Thirteen descriptions in l1/categories.json, plus one name. No decision value changes and no code changes; every category keeps the action it had. Each change traces to a production misclassification, read back to the wording that caused it. Cancelled jobs were recommended STOP. 4285548 and 4285549 were cancelled by hand; their logs hold 751 SIGTERMs, 847 "Exception ignored" and healthy iterations to the last line before the signal, and the grounded primary failure is Python's own weakref finalizer losing a module global during interpreter teardown - which Python labels Exception ignored precisely because it did not affect execution. Cat 28 names "TypeError/AttributeError on None" and matched that text; cat 1, the right answer, read in full "no application fault", which is false on its face since a kill leaves plenty of application-shaped noise. Cat 1 now carries both surfaces a cancellation leaves - the bare slurmstepd marker, which is the entire content of some logs, and progress-then-teardown - and cat 28 excludes tracebacks demonstrably raised during shutdown. Cat 28's exclusion is limited to shutdown frames rather than lateness. A deterministic fault can surface late: 4411569 cycle 3 failed after an automatic scale-up set data_parallel_size to 8192 and Megatron asserted 12288 was not divisible by 1 * 8192, on 8321 ranks with no teardown frames at all. That recurs under the resulting configuration, so it stops. Cascade-only TCPStore logs returned category 0 at confidence 0, telling a reader nothing about a job that had checkpointed cleanly and then lost its store. Cat 12 was the longest description of the 38 at 680 characters against a median of 142, and the only one written in prohibitive voice. Completed iterations settle these: a rendezvous failure cannot happen at iteration 48310 because rendezvous already succeeded. Cat 12 is gated on no progress; cat 3 owns the mid-training case. Cat 21 read "Assertion after checkpoint resume (progress-log bookkeeping)" in 116 characters, which made it a superset of cat 28 for any post-resume assertion - 4411569 landed there in 4 of 5 runs. It now names the bookkeeping meant and excludes configuration-value assertions. Cats 34 and 35 described the seed incident that produced them, pinning a rank and a checkpoint number. Nine descriptions asserted the action as well as the evidence; the decision field already carries that, and the description was a second, unenforced copy. Claims about the nature of a failure are kept, since that is what a classifier should weigh. Validated on 26 live logs re-analyzed on an isolated instance, 13 labeled dataset cases covering every edited category with positive and negative controls, and individual inspection of 20 incidents. Five cancellations move STOP to RESTART; 4188567 correctly stays STOP because its kill followed a real MissingEpochIndex dataset fault; 4411569 moves RESTART to STOP; the labeled TCPStore cases stay on cat 12 and the labeled progress-log assertions stay on cat 21. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
continue-revolution
force-pushed
the
chengsongz/taxonomy-category-fixes
branch
from
October 14, 2026 22:36
8ab87ed to
a8ebbeb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five category descriptions in
l1/categories.json. No decision values change; no code changes.Each was found by reading a production misclassification back to the description that caused it.
What changed
rank 608and the GPTDataset index-load path.ckpt 27600.Why it mattered
Hand-cancelled jobs were being recommended STOP. Their logs hold 751 SIGTERMs, 847
Exception ignoredand healthy iterations to the last line before the signal; the grounded primary failure was Python's own weakref finalizer losing a module global during teardown — which Python labelsException ignoredprecisely because it did not affect execution.Separately, cascade-only TCPStore logs returned
category_id: 0("none matched") at confidence 0, so the alert told the reader nothing about a job that had cleanly checkpointed and then lost its store.Validation
0 → 12(intended), one0 → 1(a correction — that log has 6180 SIGTERMs and 3 TCPStore lines), one26 ↔ 32shown to be model variance by repeat trials on identical input, both STOP.MissingEpochIndexdataset fault (7104 occurrences, zero completed iterations), and the broadened cat 1 did not claim it.Note for reviewers
An earlier revision of cat 1 described only the progress-then-teardown shape and broke the canonical case — two labeled cases whose entire log is
*** STEP <id> ON <node> CANCELLED AT <time> ***drifted to cat 2. That is the same over-fitting this PR removes from cat 12, and it was caught only because the control set covered every edited category; both categories are RESTART, so headline accuracy was unchanged. Worth keeping that shape of control for future taxonomy edits.Two follow-ups not addressed here: cats 26 and 32 are not reliably distinguishable (demonstrated twice), and cats 1 and 3 both have a claim on a log containing only a cancellation marker.
🤖 Generated with Claude Code